1 /**
2  * This file is part of libphidget21
3  *
4  * Copyright 2006-2015 Phidgets Inc <patrick@phidgets.com>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 3 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, see 
18  * <http://www.gnu.org/licenses/>
19  */
20 module phidget21.phidconst;
21 
22 extern(C) __gshared {
23 	/**
24 	 * Phidget device class uniquely identifies a class of Phidgets.
25 	 */
26 	enum CPhidget_DeviceClass {
27 		PHIDCLASS_ACCELEROMETER = 2,			/**< Phidget Accelerometer */
28 		PHIDCLASS_ADVANCEDSERVO = 3,			/**< Phidget Advanced Servo */
29 		PHIDCLASS_ANALOG = 22,					/**< Phidget Analog */
30 		PHIDCLASS_BRIDGE = 23,					/**< Phidget Bridge */
31 		PHIDCLASS_ENCODER = 4,					/**< Phidget Encoder */
32 		PHIDCLASS_FREQUENCYCOUNTER = 21,		/**< Phidget Frequency Counter */
33 		PHIDCLASS_GPS = 5,						/**< Phidget GPS */
34 		PHIDCLASS_INTERFACEKIT = 7,				/**< Phidget Interface Kit */
35 		PHIDCLASS_IR = 19,						/**< Phidget IR */
36 		PHIDCLASS_LED = 8,						/**< Phidget LED */
37 		PHIDCLASS_MOTORCONTROL = 9,				/**< Phidget Motor Control */
38 		PHIDCLASS_PHSENSOR = 10,				/**< Phidget PH Sensor */
39 		PHIDCLASS_RFID = 11,					/**< Phidget RFID */
40 		PHIDCLASS_SERVO = 12,					/**< Phidget Servo */
41 		PHIDCLASS_SPATIAL = 20,				/**< Phidget Spatial */
42 		PHIDCLASS_STEPPER = 13,				/**< Phidget Stepper */
43 		PHIDCLASS_TEMPERATURESENSOR = 14,		/**< Phidget Temperature Sensor */
44 		PHIDCLASS_TEXTLCD = 15,				/**< Phidget TextLCD */
45 		PHIDCLASS_TEXTLED = 16,				/**< Phidget TextLED */
46 		PHIDCLASS_WEIGHTSENSOR = 17,			/**< Phidget Weight Sensor */
47 	}
48 	
49 	/**
50 	 * Phidget device id uniquely identifies a specific type of Phidget.
51 	 */
52 	enum CPhidget_DeviceID {
53 		/* These are all current devices */
54 		PHIDID_ACCELEROMETER_3AXIS = 0x07E, /**< Phidget 3-axis Accelerometer (1059) */
55 		PHIDID_ADVANCEDSERVO_1MOTOR = 0x082, /**< Phidget 1 Motor Advanced Servo (1066) */
56 		PHIDID_ADVANCEDSERVO_8MOTOR = 0x03A, /**< Phidget 8 Motor Advanced Servo (1061) */
57 		PHIDID_ANALOG_4OUTPUT = 0x037, /**< Phidget Analog 4-output (1002) */
58 		PHIDID_BIPOLAR_STEPPER_1MOTOR = 0x07B, /**< Phidget 1 Motor Bipolar Stepper Controller with 4 Digital Inputs (1063) */
59 		PHIDID_BRIDGE_4INPUT = 0x03B, /**< Phidget Bridge 4-input (1046) */
60 		PHIDID_ENCODER_1ENCODER_1INPUT = 0x04B, /**< Phidget Encoder - Mechanical (1052) */
61 		PHIDID_ENCODER_HS_1ENCODER = 0x080, /**< Phidget High Speed Encoder (1057) */
62 		PHIDID_ENCODER_HS_4ENCODER_4INPUT = 0x04F, /**< Phidget High Speed Encoder - 4 Encoder (1047) */
63 		PHIDID_FREQUENCYCOUNTER_2INPUT = 0x035, /**< Phidget Frequency Counter 2-input (1054) */
64 		PHIDID_GPS = 0x079, /**< Phidget GPS (1040) */
65 		PHIDID_INTERFACEKIT_0_0_4 = 0x040, /**< Phidget Interface Kit 0/0/4 (1014) */
66 		PHIDID_INTERFACEKIT_0_0_8 = 0x081, /**< Phidget Interface Kit 0/0/8 (1017) */
67 		PHIDID_INTERFACEKIT_0_16_16 = 0x044, /**< Phidget Interface Kit 0/16/16 (1012) */
68 		PHIDID_INTERFACEKIT_2_2_2 = 0x036, /**< Phidget Interface Kit 2/2/2 (1011) */
69 		PHIDID_INTERFACEKIT_8_8_8 = 0x045, /**< Phidget Interface Kit 8/8/8 (1013, 1018, 1019) */
70 		PHIDID_INTERFACEKIT_8_8_8_w_LCD = 0x07D, /**< Phidget Interface Kit 8/8/8 with TextLCD (1201, 1202, 1203) */
71 		PHIDID_IR = 0x04D, /**< Phidget IR Receiver Transmitter (1055) */
72 		PHIDID_LED_64_ADV = 0x04C, /**< Phidget LED 64 Advanced (1031) */
73 		PHIDID_LINEAR_TOUCH = 0x076, /**< Phidget Linear Touch (1015) */
74 		PHIDID_MOTORCONTROL_1MOTOR = 0x03E, /**< Phidget 1 Motor Motor Controller (1065) */
75 		PHIDID_MOTORCONTROL_HC_2MOTOR = 0x059, /**< Phidget 2 Motor High Current Motor Controller (1064) */
76 		PHIDID_RFID_2OUTPUT = 0x031, /**< Phidget RFID with Digital Outputs and Onboard LED (1023) */
77 		PHIDID_RFID_2OUTPUT_READ_WRITE = 0x034, /**< Phidget RFID with R/W support (1024) */
78 		PHIDID_ROTARY_TOUCH = 0x077, /**< Phidget Rotary Touch (1016) */
79 		PHIDID_SPATIAL_ACCEL_3AXIS = 0x07F, /**< Phidget Spatial 3-axis accel (1049, 1041, 1043) */
80 		PHIDID_SPATIAL_ACCEL_GYRO_COMPASS = 0x033, /**< Phidget Spatial 3/3/3 (1056, 1042, 1044) */
81 		PHIDID_TEMPERATURESENSOR = 0x070, /**< Phidget Temperature Sensor (1051) */
82 		PHIDID_TEMPERATURESENSOR_4 = 0x032, /**< Phidget Temperature Sensor 4-input (1048) */
83 		PHIDID_TEMPERATURESENSOR_IR = 0x03C, /**< Phidget Temperature Sensor IR (1045) */
84 		PHIDID_TEXTLCD_2x20_w_8_8_8 = 0x17D, /**< Phidget TextLCD with Interface Kit 8/8/8 (1201, 1202, 1203) */
85 		PHIDID_TEXTLCD_ADAPTER = 0x03D, /**< Phidget TextLCD Adapter (1204) */
86 		PHIDID_UNIPOLAR_STEPPER_4MOTOR = 0x07A, /**< Phidget 4 Motor Unipolar Stepper Controller (1062) */
87 		
88 		/* These are all past devices (no longer sold) */
89 		PHIDID_ACCELEROMETER_2AXIS = 0x071, /**< Phidget 2-axis Accelerometer (1053, 1054) */
90 		PHIDID_INTERFACEKIT_0_8_8_w_LCD = 0x053, /**< Phidget Interface Kit 0/8/8 with TextLCD (1219, 1220, 1221) */
91 		PHIDID_INTERFACEKIT_4_8_8 = 4, /**< Phidget Interface Kit 4/8/8 */
92 		PHIDID_LED_64 = 0x04A, /**< Phidget LED 64 (1030) */
93 		PHIDID_MOTORCONTROL_LV_2MOTOR_4INPUT = 0x058, /**< Phidget 2 Motor Low Voltage Motor Controller with 4 Digital Inputs (1060) */
94 		PHIDID_PHSENSOR = 0x074, /**< Phidget PH Sensor (1058) */
95 		PHIDID_RFID = 0x030, /**< Phidget RFID without Digital Outputs */
96 		PHIDID_SERVO_1MOTOR = 0x039, /**< Phidget 1 Motor Servo Controller (1000) */
97 		PHIDID_SERVO_1MOTOR_OLD = 2, /**< Phidget 1 Motor Servo Controller - Old Version */
98 		PHIDID_SERVO_4MOTOR = 0x038, /**< Phidget 4 Motor Servo Controller (1001) */
99 		PHIDID_SERVO_4MOTOR_OLD = 3, /**< Phidget 4 Motor Servo Controller - Old Version */
100 		PHIDID_TEXTLCD_2x20 = 0x052, /**< Phidget TextLCD without Interface Kit (1210) */
101 		PHIDID_TEXTLCD_2x20_w_0_8_8 = 0x153, /**< Phidget TextLCD with Interface Kit 0/8/8 (1219, 1220, 1221) */
102 		PHIDID_TEXTLED_1x8 = 0x049, /**< Phidget TextLED 1x8 */
103 		PHIDID_TEXTLED_4x8 = 0x048, /**< Phidget TextLED 4x8 (1040) */
104 		PHIDID_WEIGHTSENSOR = 0x072, /**< Phidget Weight Sensor (1050) */
105 		/* Device in firmware upgrade mode */
106 		PHIDID_FIRMWARE_UPGRADE = 0x098,
107 	}
108 }